package com.example.xmpic.mvp.contract;

import android.content.Intent;

import com.example.common.mvp.IBasePresenter;
import com.example.common.mvp.IBaseView;
import com.example.xmpic.support.models.FunDevice;
import com.example.xmpic.support.models.FunStreamType;

/**
 * @author skygge
 * @date 2020/5/25.
 * GitHub：javofxu@github.com
 * email：skygge@yeah.net
 * description：
 */
public interface CameraDeviceContract {

    interface IView extends IBaseView {

        void startOpenCamera();

        void showLoginView();

        void showDeviceOffLine();

        void playRealMedia();

        void stopMedia();

        void setMediaSound(boolean play);

        void switchMediaStream();

        void hideDirection();

        void onLoginFailed();

        void showVoice(boolean play);

        void showToastMsg(String msg);

        void startActivityByIntent(Intent intent);

        void finishActivity();

        void hideVideoControlBar();
    }

    interface IPresent extends IBasePresenter<IView>{

        /**
         * 获取摄像头设备
         * @param device 摄像头
         */
        void setFunDevice(FunDevice device);

        /**
         * 设备登录获取设备状态
         */
        void requestDeviceStatus(String deviceSN);

        void loginDevice();

        void requestSystemInfo();

        void onConfigSuccess(FunStreamType type, String configName);

        void onContractPTZ1(int nPTZCommand, boolean bStop);

        void showInputPasswordDialog();

        /**
         * 开始讲话
         */
        void startTalk();

        /**
         * 关闭讲话
         */
        void stopTalk();

        /**
         * 检测网络状态
         */
        void checkNetWork(boolean play);

        /**
         * 切换静音
         */
        void switchMute(FunStreamType type);

        /**
         * 切换清晰度
         */
        void switchStream();

        /**
         * 截图
         */
        void screenshot(String path);

        /**
         * 保存截图
         * @param path
         */
        void screenShotPreview(String path);

        /**
         * 远程设备图像列表
         */
        void startPictureList();

        /**
         * 设备录像列表
         */
        void startRecordList(String nickName);

        /**
         * 设备设置
         */
        void gotoCameraSetting();

        void showVideoControlBar();

        void hideVideoControlBar();

        /**
         * 切换视频全屏/小视频窗口(以切横竖屏切换替代)
         */
        void switchOrientation();

        /**
         * 返回时是否是横屏
         */
        void onBackPressed();
    }
}
